<?php
/**
 * IndexController
 * 
 * @author
 * @version 
 */
require_once 'Zend/Controller/Action.php';
class Admin_IndexController extends Zend_Controller_Action
{
    /**
     * The default action - show the home page
     */
    public function indexAction ()
    {
    	$this->view->title = "identification";
     	$form = new Admin_Forms_Identification();
		$this->view->form = $form;
		$this->view->message = null;
		
    if($this->_request->isPost())
		{
			//on récupère le login
			$username = $this->_request->getPost('login');
			//on récupère le password 						
			$password = $this->_request->getPost('password');					
			
			if (empty($username)) 
			{
				$this->view->message = 'Veuillez saisir un identifiant';
			} 
			else
			{
				//on récupère la connexion à la base de donnée
				$dbAdapter = Zend_Db_Table::getDefaultAdapter();
				
				//récupération de l'adaptateur dbAdapter				
				$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
				
				//on indique le nom de la table		
				$authAdapter->setTableName('login');	
				
				//on indique la colonne du login				
				$authAdapter->setIdentityColumn('LOGIN');
				
				//on indique la colonne du mot de passe						
				$authAdapter->setCredentialColumn('PASSWD');
				
				//on dit qu les mots de passes sont hashés en MD5
				$authAdapter->setCredentialTreatment('SHA1(?)');					

				//ajout des données du formulaire pour l'authentification
				$authAdapter->setIdentity($username);
				$authAdapter->setCredential($password);

				//lancement de l'authentification
				$auth = Zend_Auth::getInstance()->setStorage(new Zend_Auth_Storage_Session('admin'));
				$result = $auth->authenticate($authAdapter);
				
				if ($result->isValid()) 
				{
					//succès: on stoque dans un objet sessions toutes les infos de la ligne
					//de la table sauf le mot de passe pour des raisons de sécurité.
					$data = $authAdapter->getResultRowObject(null, 'password');
					$auth->getStorage()->write($data);
					//on redirige vers notre page admin
					$this->_redirect('/admin/accueil');
				} 
				else 
				{
					//failure: clear database row from session
					$this->view->message = "Echec de l'identification";
				}				
			}
		}
    }
    
	public function logoutAction()
	{
		Zend_Auth::getInstance()->setStorage(new Zend_Auth_Storage_Session('admin'))->clearIdentity();
		$this->_redirect('/index');
	}
}
